import java.awt.event.ActionEvent; import java.awt.BorderLayout; import java.awt.event.ActionListener; import javax.swing.JScrollPane; import javax.swing.border.Border; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.JComboBox; import javax.swing.JButton; class Panel2Timetable extends JPanel { public Panel2Timetable(final Frame1Timetable frame) { //contents of north border DatabaseOperations db = new DatabaseOperations(); Border etched = BorderFactory.createEtchedBorder(); if (etched == null) { System.out.println("etched is null"); System.exit(0); } final JComboBox sectionComboBox = new JComboBox(db.getDistinctListFromDataBase("BATCH", "ID")); final JComboBox teacherComboBox = new JComboBox(db.getDistinctListFromDataBase("TEACHER", "ID")); final JComboBox roomComboBox = new JComboBox(db.getDistinctListFromDataBase("ROOM", "ID")); Border titledSection = BorderFactory.createTitledBorder(etched, "BATCH:"); sectionComboBox.setBorder(titledSection); sectionComboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String section = (String) sectionComboBox.getSelectedItem(); if (section.charAt(0) == '-') {//(section.equals("-SELECT-")) frame.setFooterText("Select appropriate option."); } else//particularTimetable() { //frame.setFooterText("Loading... Please Wait"); roomComboBox.setSelectedIndex(0); //frame.setFooterText("Loading... Please Wait"); teacherComboBox.setSelectedIndex(0); frame.setFooterText("Loading... Please Wait"); frame.repaintPanel2Timetable("BATCH", section); frame.setFooterText("Timetable for BATCH: " + section + " loaded."); } } }); Border titledTeacher = BorderFactory.createTitledBorder(etched, "TEACHER:"); teacherComboBox.setBorder(titledTeacher); teacherComboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String teacher = (String) teacherComboBox.getSelectedItem(); if (teacher.charAt(0) == '-') { frame.setFooterText("Select appropriate option."); } else//particularTimetable() { roomComboBox.setSelectedIndex(0); sectionComboBox.setSelectedIndex(0); frame.setFooterText("Loading... Please Wait"); frame.repaintPanel2Timetable("TEACHER", teacher); frame.setFooterText("Timetable for TEACHER: " + teacher + " loaded."); } } }); Border titledRoom = BorderFactory.createTitledBorder(etched, "ROOM:"); roomComboBox.setBorder(titledRoom); roomComboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String room = (String) roomComboBox.getSelectedItem(); if (room.charAt(0) == '-') { frame.setFooterText("Select appropriate option."); } else//particularTimetable() { sectionComboBox.setSelectedIndex(0); teacherComboBox.setSelectedIndex(0); frame.setFooterText("Loading... Please Wait"); frame.repaintPanel2Timetable("ROOM", room); frame.setFooterText("Timetable for ROOM: " + room + " loaded."); } } }); JPanel chooseTimetableOption = new JPanel(); chooseTimetableOption.add(sectionComboBox); chooseTimetableOption.add(teacherComboBox); chooseTimetableOption.add(roomComboBox); //contents of center border : 11x6 array particularTimetable = new ParticularTimetable(); //contents of south border : JButton backButton = new JButton("BACK"); backButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { sectionComboBox.setSelectedIndex(0); roomComboBox.setSelectedIndex(0); teacherComboBox.setSelectedIndex(0); frame.actionBackPanel2(); } }); JButton exitButton = new JButton("EXIT"); exitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); JPanel exitPanel = new JPanel(); exitPanel.add(backButton); exitPanel.add(exitButton); this.setLayout(new BorderLayout()); this.add(chooseTimetableOption, BorderLayout.NORTH); //scrollPane.add(particularTimetable); //this.add(scrollPane = new JScrollPane(particularTimetable), BorderLayout.CENTER); centerPanel.add(particularTimetable); this.add(scrollPane, BorderLayout.CENTER); this.add(exitPanel, BorderLayout.SOUTH); } void repaintParticularTimetable(){ particularTimetable.validate(); } //JScrollPane scrollPane = new JScrollPane(); ParticularTimetable particularTimetable; JPanel centerPanel = new JPanel(); //JScrollPane scrollPane; JScrollPane scrollPane = new JScrollPane(centerPanel); }